/*-工具类-*/
export default class Tool {
  // 过滤空值
  static filterParams(params) {
    if (params.length) {
      return;
    } else {
      const p = {};
      for (const key in params) {
        if (params.hasOwnProperty(key)) {
          const el = params[key];
          if (el !== "") {
            p[key] = el;
          }
        }
      }
      return p;
    }
  }

  static arrayToTree(data, pid, pKey = "pid", key = "id") {
    var tree = [];
    var temp;
    for (var i = 0; i < data.length; i++) {
      if (String(data[i][pKey]) === String(pid)) {
        const obj = data[i];
        obj.key = data[i][key];
        temp = this.arrayToTree(data, data[i][key], pKey, key);
        if (temp.length > 0) {
          obj.father = true;
          obj.children = temp;
        }
        tree.push(obj);
      }
    }
    return tree;
  }

  static uuid() {
    var s = [];
    var hexDigits = "0123456789abcdef";
    for (var i = 0; i < 36; i++) {
      s[i] = hexDigits.substr(Math.floor(Math.random() * 0x10), 1);
    }
    s[14] = "4"; // bits 12-15 of the time_hi_and_version field to 0010
    s[19] = hexDigits.substr((s[19] & 0x3) | 0x8, 1); // bits 6-7 of the clock_seq_hi_and_reserved to 01
    s[8] = s[13] = s[18] = s[23] = "-";

    var uuid = s.join("");
    return uuid;
  }

  // json对象排序
  static compare(arr, key) {
    return arr.sort(function (a, b) {
      var value1 = a[key];
      var value2 = b[key];
      return value1 - value2;
    });
  }
  static download(content, fileName) {
    const blob = new Blob([content]);
    const a = document.createElement("a");
    const url = window.URL.createObjectURL(blob);
    const filename = fileName + ".xlsx";
    a.href = url;
    a.download = filename;
    a.click();
    window.URL.revokeObjectURL(url);
  }
}
